% Ejercicio "URL"
\subsection*{\fbox{\theejercicio} - URL}

WWW son las siglas de ``World Wide Web'', una red de \'ambito global que se basa en la arquitectura cliente/servidor para ransferir ficheros de hipertexto entre m\'aquinas conectadas a Internet. Para localizar en esta red un fichero de hipertexto concreto se ha definido un lenguaje cuyas sentencias se denominan referencias URL (``Uniform Resource Locator''), y que permiten especificar el protocolo de comunicaciones que se debe usar, la m\'aquina con la que se debe conectar y el nombre del fichero. Por ejemplo, la siguiente referencia URL:

\begin{center}
\fbox{{\tt ftp://apolo.uma.es/dist/doc/DROL.ps.Z}}
\end{center}

indica que se desea obtener el fichero: ``{\tt /dist/doc/DROL.ps.Z}'' de la m\'aquina ``{\tt apolo.uma.es}'' usando el protocolo ``{\tt ftp}''.

\smallskip

A efectos de este ejercicio debe considerarse que los protocolos que admite WWW son s\'olamente ``http'', ``ftp'' y ``gopher''.

\smallskip

Los nombres de la m\'aquina pueden escribirse de dos formas:

\begin{itemize}
\item En notaci\'on simb\'olica, como apare en el ejemplo anterior, compuesta por el nombre de la m\'aquina  y (opcionalmente) por los dominios al que pertenece, separados por el caracter punto, por ejemplo:

\begin{center}
\begin{tabular}{|l|} \hline
{\tt apolo}                   \\
{\tt apolo.lcc.ctima.uma.es}  \\ \hline
\end{tabular}
\end{center}

\item En notaci\'on decimal, especificando los cuatro n\'umeros de la direcci\'on internet de la m\'aquina, por ejemplo:

\begin{center}
\fbox{{\tt 150.214.58.55}}
\end{center}
\end{itemize}

El nombre del fichero de la referencia URL es cualquier nombre de fichero v\'alido en UNIX incluyendo el camino completo en caso necesario, (usando s\'olamente caracteres alfanum\'ericos, el punto y la barra invertida para separar los directorios), por ejemplo:

\begin{center}
\begin{tabular}{|l|} \hline
{\tt index.html}          \\
{\tt /dist/doc/DROL.ps.Z} \\ \hline
\end{tabular}
\end{center}

En una referencia URL puede omitirse el nombre del protocolo, en cuyo caso se supone que por defecto se usa el protocolo ``{\tt http}'', y el nombre del fichero, en cuyo caso se usa por defecto el fichero ``{\tt index.html}''. Por ejemplo, son v\'alidas y equivalentes entre s\'{\i} las referencias URL:

\begin{center}
\begin{tabular}{|l|} \hline
{\tt apolo.uma.es}            \\
{\tt apolo.uma.es/index.html} \\
{\tt http://apolo.uma.es}     \\ \hline
\end{tabular}
\end{center}

Construir mediante LEX y YACC un peque\~no int\'erprete que tenga como entrada una referencia URL, reconozca que es correcta sint\'acticamente y proporcione informac\'on sobre el protocolo, la m\'aquina, el directorio y el fichero que se especifica. Por ejemplo, para la referencia URL:

\begin{center}
\fbox{{\tt http://150.214.58.55/dist/doc/DROL.ps.Z}}
\end{center}

el resultado que se pretende obtener es:

\begin{center}
\begin{tabular}{|l|} \hline
{\tt Protocolo: http}                        \\
{\tt M\'aquina: \ \ \ \ \ \ \ \ 150.214.58.55} \\
{\tt Directorio: /dist/doc}                  \\
{\tt Fichero: \ \ \ \ \ \ \ \ DROL.ps.Z}   \\ \hline
\end{tabular}
\end{center}

NOTA: Para este ejercicio se especifica s\'olo una versi\'on simplificada del lenguaje de referencias URL.

% Solución del ejercicio
\subsubsection*{SOLUCI\'ON}

